import Vue from 'vue'
import App from './App.vue'
//引入路由
import router from '@/router';
//引入仓库store
import store from '@/store';
//全部引入
// import ElementUI from 'element-ui';
// import 'element-ui/lib/theme-chalk/index.css';
// Vue.use(ElementUI);

//按需引入 elementui
 import {Button,Pagination,MessageBox,Form,FormItem,Input} from 'element-ui';
// // //element 第一种使用方式
Vue.use(Button);
Vue.use(Pagination);
Vue.use(Form);
Vue.use(FormItem);
Vue.use(FormItem);
Vue.use(Input);
//element 第二种使用方式
//ElementUI注册组件的时候，还有一种写法，挂在原型上(那是因为第一种方式不太行)
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;


//三级联动 注册为全局组件 用的地方1比较多;
import TypeNav from '@/components/TypeNav';
//引入全局组件轮播图
import Carousel from '@/components/Carousel';
//全局分页器
import pagination from '@/components/Pagination';
//使用zujian
Vue.component(TypeNav.name,TypeNav);
Vue.component(Carousel.name,Carousel);
Vue.component(pagination.name,pagination);
//引入`接口api文件夹里面全部请求函数
//统一引入
import * as API from '@/api';
import atm from '@/assets/1.gif';


//引入MockServe.js ---mock数据
import '@/mock/mockServe.js'

//引入swiper样式
import 'swiper/css/swiper.css'

//引入图片懒加载插件
import VueLazyload from 'vue-lazyload'
//使用以及懒加载插件配置
Vue.use(VueLazyload, {
  // 详细请去npm官网
  loading: atm,
  
})

//引入自定义插件
import myPlugins from './plugins/myplugins';
Vue.use(myPlugins,{
  name:'upper'
})

Vue.config.productionTip = false
new Vue({
  render: h => h(App),
   //全局事件总线$bus配置 利用原型对象做到总线,添加一条属性这条属性可以访问到组件实例身上所有的方法和数据
  beforeCreate(){
    Vue.prototype.$bus = this;
    Vue.prototype.$API = API;
  },
  
  router,

  //注册仓库
  store,
}).$mount('#app')
